#include <stdio.h>



// #include <string.h>
// int main()
// {
//     char arr1[20] = { 0 };
//     char arr2[] = "hello world";
//     strcpy(arr1,arr2);//学习两个新的库函数
//     printf("%s\n",arr1);
//     memset(arr2,'x',5);
//     printf("%s\n",arr2);
//     return 0;
// }




//交换两个数的值
// void swap(int* px,int* py)
// {
//     int z = *px;
//     *px = *py;
//     *py = z;
// }
// int main()
// {
//     int a = 10;
//     int b = 20;
//     swap(&a,&b);
//     printf("交换后a的值为%d，b的值为%d\n",a,b);
// }





//写一个函数判断一个数是不是素数，素数是指只能被1和它本身整除的数

//输出100-200之间的素数
// int main()
// {
//     int i = 0;
//     int count = 0;
//     for (i = 100;i <= 200;i++)
//     {
//         int flag = 1;//默认i是素数，如果到最后flag都保持1，那就说明i确实是素数
//         int j = 0;
//         for (j = 2;j < i;j++)
//         {
//             if(i % j == 0)
//             {
//                 flag = 0;
//                 break;//break是必须的，只要存在一个数能使i被整除，就说明i不是素数了，直接停止循环即可
//             }
//         }
//         if (1 == flag)
//             {
//                 printf("%d ",i);
//                 count ++;
//             }
//     }
//     printf("\ncount=%d\n",count);
// }//代码优化思路；1 若m是合数，m= a*b，则 ab中至少有一个数<=sqrt(m),所以50行判断条件可改成j<=sqrt(i)，需要包含math.h头文件2 第一层for循环可从101开始，i += 2，直接吧所有偶数排除，也可节省计算时间


// //写函数
// #include <math.h>
// int is_prime(int n)
// {
//     int j = 0;
//     for (j = 2;j <= sqrt(n);j++)
//     {
//         if(n % j == 0)
//         {
//             return 0; //return的功能比break更强，直接返回0，程序（函数）结束！！！
//         }
//     }
//     return 1;
// }
// int main()
// {
//     int i = 0;
//     int count = 0;
//     for (i = 101;i <= 200;i += 2)
//     {
//         if (is_prime(i))
//          {
//             printf("%d ",i);
//             count ++;
//         }
//     }
//     printf("\ncount=%d\n",count);
// }





//写一个函数判断是不是闰年,并输出1000-2000年中的闰年
//闰年：能被4整除且不能被100整除，或能被400整除
// int is_leap_year(int a)
// {
//     if(a % 400 == 0||(a%4 == 0&& a%100 != 0))
//         return 1;
//     else
//         return 0;
// }
// int main()
// {
//     int year = 0;
//     for (year=1000;year <= 2000;year ++)
//     {
//         if(is_leap_year(year))
//         printf("%d ",year);
//     }
// }





// //写一个函数，实现有序整型数组的二分查找
// int binary_search(int arr[],int k,int sz)
// {
    // int left = 0;
    // int right = sz - 1;
    // while(left <= right)
    // {
    //     int mid = left + (right - left)/2;
    //     if (arr[mid] > k)
    //     {
    //         right = mid - 1;
    //     }
    //     else if (arr[mid] < k)
    //     {
    //         left = mid + 1;
    //     }
    //     else
    //     {
    //         return mid;
    //     }     
    // }
//     return -1;
// }
// int main()
// {
//     int arr[]={1,2,3,4,5,6,7,8,9,10};
//     int k = 7;
//     int sz = sizeof(arr) / sizeof(arr[0]);//本行代码不能放在函数内，因为数组传参只是传入数组首元素地址，函数里的arr是指针变量
//     int ret = binary_search(arr,k,sz);
//     if ( ret == -1)
//     {
//         printf("找不到\n");
//     }
//     else
//         printf("找到了，下标是%d\n",ret) ;
// }





//写一个函数，每调用一次该函数使num加一
void ADD(int* p)
{
    (*p)++;}
int main()
{
    int num = 0;;
    ADD(&num);
    printf("%d\n",num);
    ADD(&num);
    printf("%d\n",num);
    return 0;
}